g_autofree char *temp_filename = NULL;
g_autoptr(GOutputStream) ret_stream = NULL;
gboolean have_obj;
- char loose_objpath[_OSTREE_LOOSE_PATH_MAX];
- if (!_ostree_repo_has_loose_object (self, checksum, OSTREE_OBJECT_TYPE_FILE,
- &have_obj, loose_objpath,
- NULL,
+ if (!_ostree_repo_has_loose_object (self, checksum, OSTREE_OBJECT_TYPE_FILE, &have_obj,
cancellable, error))
goto out;
gboolean temp_file_is_regular;
gboolean temp_file_is_symlink;
gboolean object_is_symlink = FALSE;
- char loose_objpath[_OSTREE_LOOSE_PATH_MAX];
gssize unpacked_size = 0;
gboolean indexable = FALSE;
if (expected_checksum)
{
- if (!_ostree_repo_has_loose_object (self, expected_checksum, objtype,
- &have_obj, loose_objpath,
- NULL, cancellable, error))
+ if (!_ostree_repo_has_loose_object (self, expected_checksum, objtype, &have_obj,
+ cancellable, error))
goto out;
if (have_obj)
{
repo_store_size_entry (self, actual_checksum, unpacked_size, stbuf.st_size);
}
- if (!_ostree_repo_has_loose_object (self, actual_checksum, objtype,
- &have_obj, loose_objpath, NULL,
+ if (!_ostree_repo_has_loose_object (self, actual_checksum, objtype, &have_obj,
cancellable, error))
goto out;
const char *checksum,
OstreeObjectType objtype,
gboolean *out_is_stored,
- char *loose_path_buf,
- GFile **out_stored_path,
GCancellable *cancellable,
GError **error)
{
gboolean ret = FALSE;
struct stat stbuf;
int res = -1;
- gboolean tmp_file = FALSE;
+ char loose_path_buf[_OSTREE_LOOSE_PATH_MAX];
_ostree_loose_path (loose_path_buf, checksum, objtype, self->mode);
}
}
- if (res == 0)
- tmp_file = TRUE;
- else
+ if (res < 0)
{
do
res = fstatat (self->objects_dir_fd, loose_path_buf, &stbuf, AT_SYMLINK_NOFOLLOW);
ret = TRUE;
*out_is_stored = (res != -1);
-
- if (out_stored_path)
- {
- if (res != -1)
- *out_stored_path = g_file_resolve_relative_path (tmp_file ? self->tmp_dir : self->objects_dir, loose_path_buf);
- else
- *out_stored_path = NULL;
- }
out:
return ret;
}
-gboolean
-_ostree_repo_find_object (OstreeRepo *self,
- OstreeObjectType objtype,
- const char *checksum,
- GFile **out_stored_path,
- GCancellable *cancellable,
- GError **error)
-{
- gboolean has_object;
- char loose_path[_OSTREE_LOOSE_PATH_MAX];
- return _ostree_repo_has_loose_object (self, checksum, objtype, &has_object, loose_path,
- out_stored_path, cancellable, error);
-}
-
/**
* ostree_repo_has_object:
* @self: Repo
{
gboolean ret = FALSE;
gboolean ret_have_object;
- g_autoptr(GFile) loose_path = NULL;
- if (!_ostree_repo_find_object (self, objtype, checksum, &loose_path,
- cancellable, error))
+ if (!_ostree_repo_has_loose_object (self, checksum, objtype, &ret_have_object,
+ cancellable, error))
goto out;
- ret_have_object = (loose_path != NULL);
+ /* In the future, here is where we would also look up in metadata pack files */
if (!ret_have_object && self->parent_repo)
{